package br.com.orion.sga.model.entities;

// Generated Jul 19, 2014 6:45:05 PM by Hibernate Tools 3.4.0.CR1

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Caixa generated by hbm2java
 */
@Entity
@Table(name = "caixa", catalog = "sga")
public class Caixa implements java.io.Serializable {

	private long id;
	private boolean status;
	private Date dataAbertura;
	private Float valoresEntrada;
	private Float valoresSaida;
	private Float valorInicial;
	private Set<MovimentacaoCaixa> movimentacaoCaixas = new HashSet<MovimentacaoCaixa>(
			0);

	public Caixa() {
	}

	public Caixa(long id, boolean status, Date dataAbertura) {
		this.id = id;
		this.status = status;
		this.dataAbertura = dataAbertura;
	}

	public Caixa(long id, boolean status, Date dataAbertura,
			Float valoresEntrada, Float valoresSaida, Float valorInicial,
			Set<MovimentacaoCaixa> movimentacaoCaixas) {
		this.id = id;
		this.status = status;
		this.dataAbertura = dataAbertura;
		this.valoresEntrada = valoresEntrada;
		this.valoresSaida = valoresSaida;
		this.valorInicial = valorInicial;
		this.movimentacaoCaixas = movimentacaoCaixas;
	}

	@Id
	@Column(name = "id", unique = true, nullable = false)
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	public long getId() {
		return this.id;
	}

	public void setId(long id) {
		this.id = id;
	}

	@Column(name = "status", nullable = false)
	public boolean isStatus() {
		return this.status;
	}

	public void setStatus(boolean status) {
		this.status = status;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_abertura", nullable = false, length = 0)
	public Date getDataAbertura() {
		return this.dataAbertura;
	}

	public void setDataAbertura(Date dataAbertura) {
		this.dataAbertura = dataAbertura;
	}

	@Column(name = "valores_entrada", precision = 12, scale = 0)
	public Float getValoresEntrada() {
		return this.valoresEntrada;
	}

	public void setValoresEntrada(Float valoresEntrada) {
		this.valoresEntrada = valoresEntrada;
	}

	@Column(name = "valores_saida", precision = 12, scale = 0)
	public Float getValoresSaida() {
		return this.valoresSaida;
	}

	public void setValoresSaida(Float valoresSaida) {
		this.valoresSaida = valoresSaida;
	}

	@Column(name = "valor_inicial", precision = 12, scale = 0)
	public Float getValorInicial() {
		return this.valorInicial;
	}

	public void setValorInicial(Float valorInicial) {
		this.valorInicial = valorInicial;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "caixa", cascade=CascadeType.ALL)
	public Set<MovimentacaoCaixa> getMovimentacaoCaixas() {
		return this.movimentacaoCaixas;
	}

	public void setMovimentacaoCaixas(Set<MovimentacaoCaixa> movimentacaoCaixas) {
		this.movimentacaoCaixas = movimentacaoCaixas;
	}

}
